プログラミングやRPG(作るほう)が好きな人の日記
このウェブページは毎日 夜11時にアクセスできなくなります。 朝6時半に再開されます。(世の中のネット依存対策として) 例外でアクセスができる場合があります。上のメニューの「aboutThisWebsite」を参照してください。 URL は https でもアクセスできます。 黒猫画像はクリック(タッチ)すると消えます。 NO PC WEEK とは私自身の健康のために私のパソコンの使用を制限する期間です。 【記事の先頭に5W1H を書くと良い】 |
以下の表は、このウェブページの管理人のパソコンの使用時間を管理・制限するためのものです。
この表の意図:
多くの人はパソコンのやりすぎやネットゲームのやりすぎには困っていると思います。
参考に言うと、この表を使う前の私は 1 回の PC 使用時間がノンストップで 17 時間というときもあったし、平均で言うと毎日 9 時間はやっていたと思います。
数年前から考えてきましたが、そういう徹夜とか長時間作業をするよりも、昼間の短時間作業のほうが生産性は高いのではないかと思います。
この表を使ってパソコンの使用時間を 事前に決めて、ネット上に公開 することで、パソコンのやりすぎを防止できたら、と思います。
以前は NO PC WEEK と称してパソコンを使用しない期間を設けることでやりすぎに対処してきましたが、もっと具合の良い方法はないかと考え、この表を使うようになりました。
記入の法則:
例外事項:
廃止事項:
以下の事項は実施できないので廃止する。
中途結果:
結構いい結果になっています。炊事や掃除、散歩、早起きなどが好ましいリズムでできるようになりました。
(2020年9月6日追記:散歩、早起きは最近あまりできていません。掃除や炊事は理想的にできています)
また、パソコン以外の趣味も進むようになりました。電子回路、ガンプラ、RPG のプログラム以外のモンスターイラストやストーリーなど RPG の肉付け部分の創作、勉強、昔好きだったペーパークラフト等々。
そしてパソコンの趣味自体も深夜遅くまで行うよりも質が高くなったように感じます。制限された短い時間の中で結果を得ようとするので、取捨選択が行われているし、時間が終了して、空いた時間ができ、それがほどよい休憩になり、今後の作業の方針を落ち着いて検討することもできます。それが質につながっているのかなと思います。
この取り組みが、15 才 ~ 18 才くらいまでの高専(中退)に所属していた時に実施できていたら良かっただろうなと思います。でもそれくらいの年齢では経験が浅く、このような効果的なルール作りを行うことはできなかったと思います。自分は人に比べて「創作意欲」や「ゲームで遊ぶ欲望」におぼれやすいところがあり、そのコントロールはとても難しいです。
ちなみに、分単位で記録を取ったりして、だいぶマメに見えるかもしれませんが、Windows の日本語入力(MS-IME)で「いま」と入力し、 変換 キーを押さずに ↑ ボタンを押すと現在の時刻になります。道具の便利さが人をマメに見せるのかもしれません。
自分の家族にすすめたい方へ:
パソコンのやりすぎやネットゲームのやりすぎは社会問題にもなっているので、そう思うご家族の方は多くいらっしゃると思います。
私の両親も過去に私について問題にしていました。学校へ行かず、毎日朝までパソコンに向かい、悶々としていたんです。
この表はその家族が困っていたときから 30 年後に、私が自分で必要を感じて作ったものです。
私は今 一人暮らしをしていて、自分で生計を立てる中、パソコンにおぼれた生活をすると、生活がうまく回らなくなるんです。
具体的には、
これらを改善するために表を作りました。
でも、このような必要にせまられて「自分の動機で始めた場合」と、「人からすすめられて始めた場合」とでは、結果が異なると思います。
自分の切実な動機で始めたなら自分から進んでこの表を活用すると思いますが、外から押し付けられたものはなかなか定着しないものです。
あまり適当なことは言えませんが、上記の青い部分で書いたことは、本人にとって得になることなので、「ときどき休憩して、他のあの趣味やってみたらどうだ?」とか「ときどき休憩したほうがプログラミングの質が上がるって話だぞ?」という形ですすめてみたらどうでしょうか。(それでも最終的には自立してもらうことは必要だと思いますが)
私が両親を困らせていたときに、突然、外へ一人で出て行って、一人暮らしを始めたり、接客業を始めたり、いくつか資格取得したりといろいろ行えた理由というのは、正直言ってわかりません。(※しかし途中で失業して2度、実家に戻ったことがあります。1 回目は 21 才くらいのときに 5 年間、2 回目は 35 才くらいのときに1年未満、実家にいて、何もしてなかったり働いたりしていました)
私が両親を困らせていたのは 16 才 ~ 20 才くらいの学生のころですが、そのころ家族と私自身と友人たちがみんなそれぞれ、私の生活について心配したり困ったり悩んだり、あの手この手を試したりしていました。そういう煮詰まったような状況が運命をそのように(解決の方向へ)動かすのかもしれません。運命がどうの というのは変ですが、そのくらいのことしか言えません。何かしら取り組む必要があるということですかね。
この社会問題はクリアーすべきものみたいです。
以下の表は、今月の私の調べものや関心事の記録です。
「記事にするほどではない」または「記事にする時間がない」という場合に、手軽にここに書いていきます。
2月27日(土) | プログラミング | アクセサメソッドのメリットってなんだ? |
2月26日(金) | 映画 | 「missライアー」GYAO!にて2021年3月23日(火) 23:59まで無料放送 サスペンス/1:35:52/2016年/公評価:★★★☆☆、私評価:★★★☆☆ おもてに出てきた悪党の悪党っぷりが良かった。 おススメ可否:お勧めできるけど、満足度は評価の通り |
以降は今月の日記(このウェブページのメイン)です。上ほど新しい日記です。
JavaScript をページ上で動かす際の、画面対応のサンプルです。
ウィンドウをリサイズすると、可能な限りに画面が広がります。
また、画面下部のスライダを動かすと、描画内容を変えずにそのピクセルの大きさを変更(モザイク)します。
ポイント:
これらをうまく調整すると実現できます。
モザイク効果について少し詳しく書きます。
以下の例を HTML ファイルへコピーしてブラウザで表示すれば動くと思います。実際の動作はこれです。
<html>
<head>
<script>
function test() {
let canvas = document.getElementById( "testcanvas" );
let cc = canvas.getContext( "2d" );
if( true ) { //trueでモザイク、falseで通常
let pixel = 4; //モザイクの大きさ
let width = canvas.width; //※A
let height = canvas.height;
canvas.style.width = width + "px";
canvas.style.height = height + "px";
canvas.width = width / pixel;
canvas.height = height / pixel;
cc.scale( 1 / pixel, 1 / pixel );
canvas.style.imageRendering = "pixelated";
canvas.style.imageRendering = "optimizeSpeed";
}
cc.beginPath();
cc.arc( 100, 100, 100, 0, 6.28 );
cc.closePath();
cc.stroke();
}
</script>
</head>
<body onload="test()">
<canvas id="testcanvas" width="512" height="448" style="border : solid 1px black;"></canvas>
</body>
</html>
このときの注意点は、上記の処理を行った後で canvas.width, canvas.height を参照すると実際の画面のサイズを返さなくなることです(canvas.width には、"以前のcanvas.width" / pixel が入っている)。処理の前にもともとの画面サイズを別の変数に取っておく必要があります。
このことは、このサンプルを「もっとリアルタイムにモザイクの大きさを変更したい」というときにも言えます。一度モザイク処理を行うと、canvas.width と height は意図しない大きさに変わっています("以前のcanvas.width" / pixel が入っている)。そのため繰り返しモザイク処理を行おうとしたときに、上記※A 部分、
let width = canvas.width; //※A
let height = canvas.height;
この※A部分を通ると全体的におかしくなっていきます。(canvas.width / pixel / pixel / pixel ... となってしまいます)
なので、先にも言ったように もともとの画面サイズを別の変数に取っておいて、その変数を使って処理を行うようにします。
iWidth = canvas.width; //ページ読み込み時などに1回だけ行う
iHeight = canvas.height;
…
let width = iWidth; //※A
let height = iHeight;
この、iWidth と iHeight は最初に一度だけ代入するようにします。
最初の値(iWidth、iHeight)を基準に CANVAS の各プロパティを変更するようにすれば、おかしくなりません。
それを行った例がこれです。1px, 4px, 16px を自由に切り替えられるようになっています。
プログラムリストはリンク先で右クリックして「ソースの表示」を行って見てください。
ちょっとクセのあるしくみで、使いこなすのに注意が必要ですが、人目を引くおもしろい効果なので頑張ってやってみてください。
(実は私もそんなに使いこなせているわけではありません)
今月2月は4連休と3連休が続き、かなり時間があったので、今年の1月に取り組んでいた自己啓発の続きを行うことにしていました。
その結果です。
\ | 項目 | 2/11(木) | 2/12(金) | 2/12(土) | 2/12(日) | …平日… | 2/20(土) | 2/21(日) | 2/22(月) |
---|---|---|---|---|---|---|---|---|---|
朝 |
散歩 |
◎ | ◎ | × | × | × | ◎ | × | |
昼 |
掃除 10分 | × | ◎ | × | × | ◎ | × | × | |
電子機器組立て 1.5h |
開始9:00 予定10:30 終了12:00 合計3:00 内容: 無安定マルチ バイブレ回路 図面作成 |
開始15:55 予定17:25 終了18:31 合計2:30 開始23:30 予定1:30 終了1:30 合計2:00 内容: 無安定マルチ バイブレ回路 はんだづけ |
開始10:30 予定12:00 終了11:57 合計1:27 開始15:15 予定16:45 終了19:02 合計3:47 内容: 無安定マルチ バイブレ回路 ケース組込完成 実験、記事作成 |
開始15:00 予定16:30 終了18:42 合計3:12 内容: 分周回路 図面作成 |
開始9:30 予定11:00 終了12:26 合計2:56 開始16:05 予定17:35 終了20:17 合計4:12 内容: 分周回路 図面検証 はんだ付け |
開始13:55 予定15:25 終了21:48 合計8時間ほど |
|||
SQL 1.5h |
開始10:55 予定12:25 終了14:50 合計3:55 内容: P78まで |
||||||||
アセンブラ言語 1.5h (内訳:12個) |
開始16:00 予定17:30 終了17:35 合計1:35 内容: P93まで |
||||||||
平日PC(趣味) 1.5h |
(上表に記載) | (上表に記載) | (上表に記載) | ||||||
23時 までに |
必ず風呂入る |
◎ | ◎ | ◎ | ◎ | × |
※「必ず風呂入る」というのは、風呂には毎日入ってますが、<23時までに>風呂に入らないと夜更かしの原因になるので、そういう規則を作ってみたりしています。
今回の取り組みも終了しました。つづきはまた次回!
(訪問者のどんなニーズと この記事がつながるか)
それではまた、時間がないので駆け足で取り組みの紹介をしていきます。
今回は前回の「無安定マルチバイブレータ回路」のとなりの、「分周回路」です。
左図の白い部分です。
左の画像リンクをクリックすると 画像を拡大 します。
…分周って何を分周するのか迷いませんか?私はいつも迷います。
言葉の通り「周波数」を「割る」ということで、たとえば、2 Hz の波形を 2 で分周すると、
周波数 2 Hz ÷ 2 = 周波数 1 Hz となります。
1秒間に2回上下するところ、2で分周すると、1秒間に1回上下する波形になる、ということです。
つまり、高い周波数がそれよりも低い周波数になるということなんですね。
(※逆は難しい言葉で、逓倍(ていばい)と言います)
実際の試験の基板で言うと、左図の明るい部分です。上が表面、下が裏面です。
左の画像リンクをクリックすると 画像を拡大 します。
その分周回路の部分だけ取り出して、実体配線図(回路図と違ってイラストを使って配線を示したもの)にしたものが左図です。
左の画像リンクをクリックすると 画像を拡大 します。
実体配線図を元に、これから作る基板の部品の位置を示した図面です。
左図は表面。
左の画像リンクをクリックすると 画像を拡大 します。
こちらは裏面です。部品同士をつなげる配線を示しています。
左の画像リンクをクリックすると 画像を拡大 します。
それらの図をもとにして今回作成した基板が左図です。表面。
表面実装タイプの IC をユニバーサル基板上にはんだづけしています(通常やらないこと)
左の画像リンクをクリックすると 画像を拡大 します。
裏面です。
はんだづけが多くて、そりゃ、もう、大変でしたよ。
時間ばっかりかかって、試験でこんなに時間をかけてたら合格できないぞ、と思いました☆
左の画像リンクをクリックすると 画像を拡大 します。
前回の基板のおとなりということで、前回の基板のウォーミングアップ中。
前回の基板は 3.5Hz という、かなりの低周波を出す基板でした。
オシロスコープで、「出たな!波形!」と言っていましたが、実はオシロスコープにも限界があり、あまり低周波すぎるとうまく表示できなかったりします。(画面がスクロールする)
前回はそのギリギリの低周波だったんです。
で、今回はその低周波をさらに「分周」して、さらなる低周波になる予定なので、オシロスコープでは見られない…と思いました。
それでオシロスコープの代わりに LED の点滅で結果を見よう!と考え、とりあえず 5V での LED 点灯を試した、というわけです。
LED 1個に対して 5V はまずいので、LED 2個直列にすれば 2.5V ずつになるかなと思いましたが、明るすぎたので、その辺にあった抵抗を適当に入れました。
左の画像リンクをクリックすると 画像を拡大 します。
おとなりどうしをつなげた図。そして確認用の LED も写真の右上にあります。
左の画像リンクをクリックすると 画像を拡大 します。
出でよドラゴン!そして願いをかなえてちょんまげ
結果は動画です。
接続して初めて電源を入れるところを撮影しました。
もし、配線間違えていたら動かないところを撮影することになります。さてどう出るか、いでよ
というわけでした。
LED が点滅したとき、思うところがありました。それは…
電子回路って面白いですね!ほんと!
|
そして、せっかく「周波数を分周する」という機能を1つの基板に取り出し、モジュールみたいになっているので、いろいろな周波数を入れてみることにしました。
ガツっと接続!
左の画像リンクをクリックすると 画像を拡大 します。
40Hz の波形(上の黄色の波形)を入れて、
出た波形が下の水色の波形です。分周されて 10 Hz の低周波へ落ちていますね。
左の画像リンクをクリックすると 画像を拡大 します。
難しい話になりますが、
ここで使っている IC は「バイナリカウンタ」というもので、信号が来るたびに数値を1ずつ上げていくんですが、その数値が今いくつなのかを 2進数 で出力してくれる IC なんです。
IC の1つの端子に 2 進数のビットが割り当てられていて、1ビット目、2ビット目、3ビット目、4ビット目と端子が並んでいます。
2進数って数値が上がるたびに1ビット目は0,1、0,1、といそがしく繰り返しますよね。
そして2ビット目は、1ビット目が1の次に繰り上がるたびに0,1、0,1、と、1ビット目とくらべて遅れて繰り返します。
その動き…!!
それは、1ビット目の端子を見れば、2分周、2ビット目の端子は4分周、3ビット目は8分周、といった調子で、「バイナリカウンタ」というものは「分周」として使えるんですね。
私もこれは今回勉強しました。(まえから知っていたけど、うろおぼえで、おさらいになりました)
今回の基板は2ビット目の端子を見ているので、4分周。
40Hz ÷ 4 = 10Hz
ということです。
もっと高い周波数を入れてみよう!どれくらいまでの周波数なら OK なのかなと思ってその IC のトリセツ(データシート)を見ると、
「入れられる周波数は、4.5V の電源で IC を動かしている場合は 32MHz までですよ」と書いてある。
まぁ、だいたいいくらでも入れていいということが分かりました。
私が持っている発振器は電子工作のお店、秋葉原は「秋月電子通商」で購入したもので、最高 1MHz 出せます。32MHz には遠く及びませんが、入れてみましょう。(いや、2 MHz まで出せます。あとから気づきました)
左の画像リンクをクリックすると 画像を拡大 します。
ちゃんと 1MHz 入りました。(上の黄色い波形)
下の波形は、4分周され、250 kHz ですね。
左の画像リンクをクリックすると 画像を拡大 します。
以上、今月2月は連休が2回あったので、自己啓発として電子機器組み立て1級の「省エネコントローラー」の回路を実験しました。
作った基板も4枚目になると、だいぶ慣れてきました。
やっぱり期待通りの動きを見られると、面白い!と思えますね。
会社から言われて、電子機器組み立ての試験に臨むのも、世の中の大勢の社員たちがそうやっているので、それで良いのですが、ちょっと踏み込んで取り組んでみると、「面白い!」を掘り出すことができるわけです。
機材をそろえるのは大変ですが、その気があるならやってみてはどうでしょうか?
電子機器組み立ての試験に臨む人は、エレクトロニクスの現場にいるでしょうから、無駄にはならないでしょうね。
しかし、電子機器組み立て1級に合格するために、この回路の理解はまったく不要なので、実技練習の時間を減らしてまで回路を理解する必要はありません。
私はなんでこんなにいろいろな測定器を持っているのかと言うと、10年くらい前にカラオケボックスの契約社員を失業してハローワークの「電子回路エンジニア科」を受講して、初めて電気業界に入り、「本腰を入れるぞ」と思って、その流れで「トランジスタ技術」を購入したり、オシロスコープを購入したりして、それで測定器をそろえて来た、という感じです。
(訪問者のどんなニーズと この記事がつながるか)
小説、漫画、アニメ、映画と並ぶ、「ゲーム」って何なのか。
ゲームには他の小説、漫画、アニメ、映画とは違い、ゲームならではの得意とするものがある。
それは、プレイヤーからの入力による、仮想体験だ。
逆に不得意なのは、細かいドラマの表現だ。
小説、漫画、アニメ、映画はどれもドラマ表現が得意だが、ゲームはそれが不得意だ。
細かい描写(たとえば登場人物の表情の変化や、荷台からオレンジがバラバラと落ちてそれをプレイヤーが拾ってあげて登場人物との出会いを表現する等)をプログラムするのは難しいし、入力によってドラマが複数に分かれること(マルチストーリー)も得意じゃない。
わざわざ不得意なことを行わず、得意なことに専念できれば、作品(RPG)の着地点がぶれずに済むのでは?
RPG はもともと、D&D のダンジョンを、1つの "アトラクション" として、コンピューター上に表現(再現)したところから始まっている。
人気の D&D の世界を疑似体験できるのだ。それは画期的だった。(1975年ごろ)
芸術は広く 絵も音楽も小説も、五感を刺激して、現実とは別の、1つの未知の世界を視聴者に与えているのだ。
だから楽しい。
RPG もそうだ。
…と、一人で考えていて、一人で合点したので、掲載してみました。
一人で合点しているだけかもしれないけど…
一人で合点した偏りのある考えとはいえ、この考え事を実際の作品に適用してみると、私が最近プログラムしている、「ギターを持ってバク転をするお兄さんのアニメ」も、ほんの一瞬だけですが、訪問者の方に「1つの未知の世界」を提供している、という言い方ができます。現実ではないものを作り、五感を刺激し、情景(イメージ)を訪問者の方に与えているんです。現実から離れた自由な何かは楽しい気持ちにさせます。
「RPGの得意なこと」、「面白いものがすでにあってそれを再現するアトラクションである」、「1つの未知の世界を提供しているのだ」という思いで何かを作れば、少し違ってくるのではと思います。
※「RPGはアトラクションである」というのは私が勝手に考えたことであって、業界で同じことは言われていません。
だれでも自分の見た目に自信がなくて、くよくよと悩むことはあると思います。
私も14才くらいのときから、今の今まで自分の姿かたちに悩んできて、そしてこれからもいろいろ気にして悩み続けると思います。
そして、この数年で気づいたんですが、そういう悩みについて「そんなことは、どうでもいい」と思う瞬間がときどきあるんです。
1年に数えるくらいしかありませんが、下記の場合にそうなります。
だからなんだ、というわけではないんですが、こういうのはそう簡単に手に入るものではないので、ちょっと書いておこうと思いました。
お客さんのことはそれはそれで大切なことですが、創作のほうはあまりに魅力が大きいと「それに対して人生が短すぎる」と複雑な気持ちになります。
「短すぎる」というのはつまり、「もっと楽しんでいたいけど、もう帰る時間だよ、え~!↓↓」みたいなそんな感じの気持ちです。
まだやりたいことはいっぱいあるのに。
そんなに大きな魅力を感じた誰かの創作って何かと言うと…
などなど。でもこういうのって結構個人的な好みなのであって、これが好きだと言ってる本人にしか魅力がわからない、というものだと思います。
以下の画面は、JavaScript + CANVAS です。ブラウザのウィンドウの大きさ変更に合わせて、可能な限りの大きさに変化します。
私は2月は 4連休 → 平日 5日間 → 3連休 と続きます。今現在4連休の最中です。
この連休を利用して、自宅にて国家試験「電子機器組み立て1級」の実技試験課題「省エネコントローラー」の回路について、その部分的な機能を1つずつ取り出して実験しようと思っています。
お正月にすでに2つの機能について基板を作成し、実験も行いました。今回はその3つ目の機能です。
この試験はあくまでも組み立てる技能を試されるのであって、回路図の動きの理解は 99.9% 不要です。それなのに回路図を理解しようとしているわけは…、回路を理解すれば より身近にこの課題が見えてくるところがあるんじゃないかな、と思うからです。何事も表面だけを学ぶよりはその中身を詳しく知ることでよりよくその対象を自分のものにすることができる…、世間一般にそう言われていますよね。それがこの試験で本当に効果があるのかどうかは別として。ヘタすれば、回路の理解に時間を取られて組み立て技術の練習時間が少なくなり試験に不合格となる、、という恐れもあります。試験に合格したい皆さんにはあまりおススメしません。
今回3回目は、「無安定マルチバイブレータ回路」です。
以前にもこのウェブページにて同じ実験を行いました。
左図の緑の部分は前回2回分を示していて、今回は左下の白い部分です。
左の画像リンクをクリックすると 画像を拡大 します。
その回路図です。
左図の緑の部分の右側は「単安定 マルチバイブレータ回路」で左下の白い部分は今回の回路で「無安定 マルチバイブレータ回路」です。
単安定: 波形が「ハイ」か「ロー」のどちらか一方に固定される、という意味で単安定。
(一定時間 波形が「ハイ」になり、その後「ロー」に戻る)
無安定: 波形が「ハイ」と「ロー」を交互に行きかう、という意味で無安定。
(単純に矩形波を出す)
左の画像リンクをクリックすると 画像を拡大 します。
今回の回路は左図の赤い部分です。
試験では「ここが無安定マルチバイブレータ回路だ」と知ってて作っている人は総 受験者中の 1% 未満だと思います。でも実際の「電子機器 製造・生産」業界の現場でも、電気製品を作っていて、1つ1つの回路の意味を理解しながら製造している作業者はほとんどいないでしょう。理解する必要がないので。。でも電子回路というものを おおむね理解していると、作業しながら基板を見て「ややっこれは…」と思うこともしばしばあるし、部品の扱いもだいたいわかるので得をする部分は多いです。
左の画像リンクをクリックすると 画像を拡大 します。
基板表面の部品配置図。
Excel を使用して作図しています。
左の画像リンクをクリックすると 画像を拡大 します。
裏面の配線図。
ユニバーサル基板(回路の決まっていない、自由に配線できる基板)で、軟銅線をはんだ付けします。
上の表面の図を Excel の機能の「図のリンクコピー」を使ってコピーし、それを左右反転し、上から白色の半透明の四角形をかぶせれば、部品面を透かしながら線を配置できるので便利です。
左の画像リンクをクリックすると 画像を拡大 します。
基板完成、部品面。
機能ごとにアルファベットを振っています。
左の画像リンクをクリックすると 画像を拡大 します。
基板完成、はんだ面。
左の画像リンクをクリックすると 画像を拡大 します。
さっそく実験!
写真の左から 5V 電源を配線し、下からオシロスコープのプローブが接続されています。
左の画像リンクをクリックすると 画像を拡大 します。
出たな!波形!
「いやーん、前から このかっこ やってみたかった~ てへてへ~」
波形は 5 V ~ 0 V で 3.475 Hz です(1秒間に3回程度の周期で上下する)
この信号が、ブロック図の「分周回路」と「論理回路(制御回路)」で使われます。
左の画像リンクをクリックすると 画像を拡大 します。
これで、各機能 A~M のうち、D, E, J の3つができました。
左の画像リンクをクリックすると 画像を拡大 します。
今回は3回目ということもあって、基板作成は慣れてきたし、実験もだいぶあっさりと終わってしまいました。
自分で言っている通り、回路の実験ばっかりやっていると、実技のほうの自信がなくなっていく感じがします。
もちろん、同試験1級はユニバーサル基板を設計、製作する場面もあるので、この取り組みの中でユニバーサル基板の基板作成を行っていると、軟銅線の配線のしかたやはんだ付けのユニバーサル基板特有の難しさなど、慣れてきてタメになっているかもしれません。
(訪問者のどんなニーズと この記事がつながるか)
ある日、私の携帯電話に SMS(ショート・メッセージ・サービス)が届きました。 こんにちは!au STARです☆ auの2年契約の更新ありがとうございます。 感謝の気持ちをこめて、「3,000ポイント」分のギフト券をプレゼントしました! ●使い道や期限の確認はこちら↓ http://kddi-l.jp/dOX?i=ZT0OIDRBM0kL60QlJ ●配信を停止する http://apl.opo.auone.jp/optout/sp/ZT0OIDRBM0kL60QlJ ※本メールと行き違いにてご利用済の場合はご容赦ください。 KDD ※記載の URL は無効になるように文字列を変更しています これが、「詐欺メール」なのかどうか、しばらく区別がつきませんでした。こういう詐欺メール最近多いので…。au のアカウントにログインして、いろいろ探し回ってそれらしきポイントの表示が見つからないので、やっぱり詐欺かなと思ったんですが、根気よく あちこち探し回ると、3,000 ポイントの表示が見つかりました。(「au」ではなく、「au STAR」にログインして表示されるポイントでした) どうやら詐欺ではないとわかりましたが、このわかりにくさ、もうちょっと何とかならないんでしょうか… 差出人が「157」であれば、au ということで確定しているんでしたっけ…? | |
それでほしい商品を選んで、2,3日後くらいに届きました。 Bluetooth スピーカー「Owltech OWL-BTSP03S」。 かっきり 3,000 ポイント( 3,000 円相当)使いました。 (以降は Amazon にも投稿した内容です) さっそくパソコンとつなげて iTunes の音を出してみると、確かに良い音って感じがします。何と言うか、音が細かい感じがして、全部の音を聞き取れる感じがします。 でも小さなモノラルのスピーカーなので、完ぺきなゴージャスな発音ではなく、「ボコスカ」とした音。こもっている感じかな? でも良い音には違いなく、しばらく使っていられそう。 ノート PC に搭載されている DOLBY HOME THEATER(2011年製)というスピーカーと比べると、同じくらいの音質ですが、当製品のほうがやや良い音質な気がします。なので、そういう特別なスピーカーをノート PC に搭載されていない方は、もしかしたら良い買い物になるのかな、と思います。(買ってみてダメだった時はホントにゴメンナサイ!) 届いた製品がもともと充電されていたのかわかりませんが、USB ケーブルを接続して満充電を待たずに使い始めることができました。 同じものを2個買えばステレオになるそうですが、私は1個で十分です。2個あれば楽しそうではありますが…。 本体側面にある<、>ボタンを長押しすれば前曲・次曲の操作が可能とのことですが、私の環境ではできませんでした(Windows 10+iTunes)。でも、私は曲を垂れ流しで聴いているので、その操作は必要ないかな。 試しに Android スマートホンに接続してみたら<、>ボタンで前曲・次曲の操作ができました。(が<、>ボタンは押しづらいです。おまけみたいなボタンです) |
(訪問者のどんなニーズと この記事がつながるか)
Firefox と Google Chrome とで HTML の解釈に違いがあって困っています。
次のような HTML を両ブラウザで表示します。
<body>左が Firefox の結果、右が Google Chrome の結果です。(※黒い四角形は JavaScript を使って CANVAS に描いた四角形)
Firefox はページ全体のレイアウトを崩してでも、CANVAS のアスペクト比(縦横比)を保とうとし、
Google Chrome はページ全体のレイアウトを維持するが、CANVAS のアスペクト比を犠牲にしている。
これが、上記の HTML のように、CANVAS を TABLE タグでくくったときにだけ起こります。
代わりに DIV タグで同様にくくると同じことが起こりません。
TABLE タグって他のタグと振る舞いがちょっと違っていて、中身が大きくなると、それ合わせて TABLE タグも大きくなります。
なおかつ、
CANVAS も他のタグと振る舞いが違っていて、style の height を指定せずに width だけを指定すると、canvas の属性のほうの width, height のアスペクト比を保とうとして、style の height を自動的に設定したりします。
調べていると、その2つの振る舞いが合わさって、この現象が起きているように思えます。
…これはたぶん、Google の対応のほうが正しいんだろうな、と思います。
でもどっちが正しいかはともかくとして、私が現在作っている WebBasic という JavaScript のクラスで、この差異を埋めるのが難しくてつらい…。
こんなことに時間を取られてしまう…。
(訪問者のどんなニーズと この記事がつながるか)
ワシの骨格について勘違いをしていました。
「ワシには前足がある」と思っていましたが、前足だと思っていたのは実は後ろ足でした。
勘違い |
修 正 → → → |
正しい |
右図のほうが、上空から飛んできて、何かをつかまえそうですよね。
あと、翼をもっと大きくしたほうが良さそうですね。
それから、色ですが、いろいろな文献によって色の指定が異なっているようです。
PHP文庫「世界の神獣・モンスターがよくわかる本」
(色の記載がない)
笠倉出版社「見てわかる!世界のドラゴン&モンスター案内」
ウィキペディア「グリフォン」
よくよく考えてみたら、私が現在モデリングしているグリフォンのこの色は、ワシの実際の色とライオンの実際の色そのままでした。
(訪問者のどんなニーズと この記事がつながるか)
(正確には、May..を飛び越えて October 2020 Update が配信されました)
私が使っているパソコンは2台あって、どちらも Windows 10 ですが、大型アップデート「May 2020 Update」がどちらのパソコンにも長い間配信されず、ほとんどあきらめていました。
この「May 2020 Update」は昨年、2020年5月末に配信が開始されたもので、今日までで だいたい8か月 経過したことになります。
なんでも、既知の互換性問題があり、Mircosoft が配信対象を慎重にコントロールしているんだそうです。
手動でアップデートすることもできますがそれはいろいろなサイトで「非推奨」と言われていてグッと我慢して待つことしかできませんでした。
(どうしても必要、という機能が配信されるわけでもなく、無闇にアップデートしてトラブルになると、割に合わないですよね)
▼8か月間こんな表示のままでした
ところが、この 2月 5日 に、PC ニュースサイトの「窓の杜」で配信対象拡大のニュースが報じられました。
(下図の画像リンクはそのページを開きます)
そこで、さっそく「Windows Update」(パソコン画面左下のスタートボタンをクリック>左下の歯車アイコン(設定)をクリック>右下のほうの「更新とセキュリティ」をクリック)を起動してみると、アップデートの通知が来ていました。(2台中の1台のみ)
(↑画像の撮影を逃してしまったので、同じような画像をネットワークから探して持ってきちゃいました)
待ちに待った画面で、うそのよう!(ちょっとおおげさ?)
それでアップデートできました。
「May 2020 Update」(2004)を飛び越えて、現在最新の「October 2020 Update」(20H2)になっています。
この画面は、「winver.exe」というアプリ(コマンド)で、画面の左下の検索入力欄に、winver と入力し、検索結果の winver コマンドの実行 を選べば表示されます。
▼winver
バージョンの表記がいろいろでまぎらわしいんですが、表にまとめるとこうなります。
バージョン番号 | 別名 | 配信開始日 | 私の状況 |
---|---|---|---|
1909 | November 2019 Update | おととし 2019年11月12日 | ←以前までこれでした |
2004 | May 2020 Update | 昨年 2020年5月27日 | (飛び越えました) |
20H2 | October 2020 Update | 昨年 2020年10月20日 | ←今回これになりました |
(バージョン番号と、別名に含まれる年号が似ていて、まぎらわしさの原因になっていますね)
ただし、先にも書いたように、今回更新できたのは2台中の1台のみで、残りの1台は いまだに November 2019 Update(バージョン番号1909)のままです。
今回更新できた | パソコンの用途 | パソコン機種名 | PC発売時期 | 現在のバージョン番号 |
---|---|---|---|---|
× | メイン使用 PC(よく写真に写しているノート PC) | Acer Aspire 3830T | 2011年 | 1909 |
○ | たまに起動するサブ PC(デスクトップ PC) | 組み立てPC | 2014年 | 20H2 |
上表のメイン使用 PC はたぶん、オーディオ関係が「既知の互換性問題」で ひっかかっているのかなと思います。
以上、気になっている人もいると思うので、報告いたしました。
下記で紹介した「WebBasic」を使用して表示してみます。
クリックすると繰り返します。
(訪問者のどんなニーズと この記事がつながるか)
時間がないので、あまり詳しく書けません。
通常、class を使って JavaScript のプログラムを書くときは、
app = new App();
app.start();
のように書いて実行すると思います。
これを、今私が作っているしくみでは、このように書くことができます。
app = new WebBasic( new App() );
app.start();
クラス App は作ろうとしているプログラム本体です。たとえばアニメのプログラムとかゲームのプログラムとかその他いろいろ日ごろから自由に作るプログラムです。
クラス WebBasic は App をラップするラッパー(リンクはIT用語辞典「ラッパー」)の形を取るものです。ラッパーとは、たとえば Java 言語の int に対する Integer とかです。int よりも Integer のほうが機能が豊富です。
♪Rapper Wraps the app
with the Wrapper. Up app Wrapped with the Wrapper by the Rapper. Ya Beef jerkey! |
(ラッパーはアプリをラップします。ラッパーによってラッパーでラップされたアップアプリ。このスットコドッコイ!)
JavaScript は class を使わなくてもプログラムを作ることができます。
しかし、class を使ってプログラムすると、「オブジェクト指向」に より近いプログラミングを行うことができます。学問として「オブジェクト指向」を学んだ人にとっては、その良さは今一つわからず、難しいものだと思えるかもしれません。しかし、オブジェクト指向以前の構造化プログラミング(順次構造、分岐構造、繰り返し構造)や、さらに前のGOTO文を多用したようなプログラミングと比較すると、オブジェクト指向と言うのは実に<画期的で><便利な技術だ>と感じると思います。
ラップしないで、App だけで動作させた場合は下図のようになります。
この画面は、ブラウザウィンドウをリサイズしても、画面の縦横サイズは固定されていて変化しません。
これはもちろん、CSSで width : 100%; などとして割合で指定すれば、ブラウザウィンドウの大きさに合わせてサイズを追従させることができます。(下図)
しかし、この場合、画面内の描画も一緒に引き伸ばされてしまいます。
そこで、私が作成中の WebBasic クラスでこの App クラスをラップすると、下図のようにブラウザウィンドウをリサイズしたときに画面内の描画は引き伸ばされず、画面の「広さ」が広がります。これは通常の JavaScript や CSS にはない機能です(…私の知る限り、たしか無かったです)。また、下図ではピクセルの大きさを変更する機能も一緒に実行し、ファミコンみたいなピクセルの粗い画面になっています。
このしくみの良いところは、new App() でも動作するし、new WebBasic( new App() ) でもどちらでも動作するところです。
つまり、画面の表示に関するリッチな対応を別のプログラムとして記述して、ソフトウェア本体については本体だけの純粋な内容で書くことができるということです。
これはプログラムのリストを受け取った人にとっては、余計なプログラムについて考える必要がなくなる、というメリットがあります。
またプログラムを作る人にとっては、プログラム本体の開発に集中することができます。
「ライブラリにする」とか、「クラスを継承する」とかも考えましたが、どちらも元の App クラスにその記述を何らかの形で書かなくてはならず、純粋な App クラスのままで何も追加の記述なしにこの機能拡張を実現できるのは「ラッパー」だけでした。
「WebBasic」というネーミングは、「ウェブブラウザのための基本的な対応」という意味です。即席で適当に考えました。
昨年10月のページで動かしたいプログラムを脱線して、遠回りしてこんなことをやっています…、というお話でした。
(訪問者のどんなニーズと この記事がつながるか)